
        <html>
			<head>
			     <title>【安天CERT】大量HFS搭建的服务器被黑客利用进行恶意代码传播 - SwordLea</title>
				 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
			</head>
			<body>
				<h1>原文地址:<a href="http://drops.wooyun.org/papers/8790">http://drops.wooyun.org/papers/8790</a></h1>
				
      <p>
        <p><strong>微信公众号:Antiylab</strong></p>

<h1>0x01 概述</h1>

<hr />

<p>近期，安天第三代蜜罐捕风系统捕获到一个下载者样本。该样本运行后访问一个由黑客搭建的轻型文件服务器（Http File Server）。通过使用捕风系统进行追溯与关联分析，分析人员发现目前有很多使用HFS搭建的服务器，通过对其中一个下载服务器进行监控，其在线6天的总点击量近3万次，可见其传播范围极广。该软件的“傻瓜式”教程颇受低水平的攻击者喜爱，同时由于其架设方便，便于传播等特点，已被黑客多次恶意利用。经过安天CERT分析人员进行关联与分析发现，目前这种轻型服务器工具已普遍流行。</p>

<ol>
<li><p><strong>样本标签</strong></p>

<p><img src="http://static.wooyun.org//drops/20150916/2015091604200682090pic1.jpeg" alt="" /></p>

<p>图1 样本标签</p>

<!--more-->

<p>黑客利用弱口令入侵MySQL数据库服务器后使用MySQL指令建立表，并新建变量，将可执行二进制码写入变量并插入表中，然后将表中的可执行二进制文件Dump到数据库服务器中，最后执行文件。这种手法也是黑客入侵数据库惯用的手法。</p>

<p>该样本运行后动态获取自身代码，随后进行提权操作，关键功能为枚举杀毒软件金山卫士进程名KSafeTray.exe。如果存在此进程，则终结进程。</p>

<p><img src="http://static.wooyun.org//drops/20150916/2015091604200996177pic24.png" alt="" /></p>

<p>图3 杀掉金山卫士进程</p>

<p>恶意代码连接服务器（IP：118.193<strong>.</strong>:1010）</p>

<p><img src="http://static.wooyun.org//drops/20150916/2015091604201287515pic3.jpeg" alt="" /></p>

<p>图4 联网操作</p>

<p>当恶意代码连接该服务器端口时，服务器端口失效。而在安天CERT分析人员连接该IP时发现一个轻型服务器，上面有一个恶意代码(1010.exe)</p></li>
<li><p><strong>服务器样本分析</strong></p>

<p><img src="http://static.wooyun.org//drops/20150916/2015091604201525283pic4.jpeg" alt="" /></p>

<p>图5 样本标签</p>

<p><img src="http://static.wooyun.org//drops/20150916/2015091604201882913pic53.png" alt="" /></p>

<p>图6 服务器样本流程</p>

<p>该黑客服务器上线不到2个小时即被安天CERT捕获到。该样本首先解密下载服务器的地址，随后判断该样本是否带参数运行及参数是否包括“Win7”字符串，如果不包括或者不带参数运行则进入创建具有下载功能的线程，进入创建线程时判断传递给线程的参数是否为空，如果不为空则进入线程创建过程，如下图所示。</p>

<p><img src="http://static.wooyun.org//drops/20150916/2015091604202239136pic6.jpeg" alt="" /></p>

<p>图7 创建线程流程</p>

<p>恶意代码进入线程后，将参数字符串（实际为连接服务器的地址）传递给连接服务器函数。该线程负责下载其他恶意代码。</p>

<p>如果恶意代码带参数且包含“Win7”字符串时，则恶意代码直接跳过线程代码创建过程，将文件名称和标志位传递给连接服务器函数，随后进行重新连接该服务器地址，重新下载1011.exe文件并保存在C:\Windows\AppPatch目录下起名为“mysqld.dll” 运行。</p>

<p><img src="http://static.wooyun.org//drops/20150916/2015091604202563584pic7.jpeg" alt="" /></p>

<p>图8 带参数运行流程</p>

<p>该服务器于9月8日刚刚上线，感染速度日趋增长，如下图所示：</p>

<p>IP地址：118.193.<strong>.</strong>（香港特别行政区中国电信沙田国际数据中心）</p>

<p><img src="http://static.wooyun.org//drops/20150916/2015091604202813108pic8.jpeg" alt="" /></p>

<p><img src="http://static.wooyun.org//drops/20150916/2015091604203261241pic9.jpeg" alt="" /></p>

<p>图9 服务器上线一天的点击量</p></li>
</ol>

<h1>0x02 关联类似服务器</h1>

<hr />

<p>通过进一步关联分析，发现在安天蜜罐系统中另一个样本所链接的地址也是使用Http File Server搭建的服务器。服务器域名为qj0.<strong>.</strong>，对此安天CERT对该域名进行几天跟踪发现该域名更换过4次IP（如下图所示），且服务器均为阿里云提供。采取动态域名、利用阿里云提供服务器，这两个手法相互结合更加提高了恶意团伙的隐蔽性。黑客购买了多个阿里云服务器用来传播恶意代码，且时常更换IP，并用IP绑定其他域名等方式来扩大恶意代码传播范围，同时将自己隐藏的更深。</p>

<p><img src="http://static.wooyun.org//drops/20150916/2015091604203569758pic10.jpeg" alt="" /></p>

<p>图10 域名频繁更换阿里云服务器</p>

<p><img src="http://static.wooyun.org//drops/20150916/2015091604204063780pic11.jpeg" alt="" /></p>

<p>图11 恶意服务器点击量</p>

<p>恶意服务器定期更新恶意代码，并且感染量增长较快。</p>

<p><strong>服务器恶意代码病毒名统计如下：</strong></p>

<p><img src="http://static.wooyun.org//drops/20150916/2015091604204551622pic12.jpeg" alt="" /></p>

<p>安天CERT于9月7日捕获到了另外一种类似恶意代码下载服务器地址，该服务器在捕获的时候点击量已经近万。服务器上的软件几乎均为恶意代码，恶意代码功能多为后门和下载者，恶意代码功能列表详见下方表格。</p>

<p><img src="http://static.wooyun.org//drops/20150916/2015091604204839428pic13.jpeg" alt="" /></p>

<p>图12 恶意服务器</p>

<p>安天CERT分析人员跟踪该服务器一周时间发现，总点击量呈线性增长，几乎每天增加3000的点击量。如下图所示：</p>

<p><img src="http://static.wooyun.org//drops/20150916/2015091604205284159pic14.jpeg" alt="" /></p>

<p>图13 服务器点击量日趋势</p>

<p><strong>服务器恶意代码病毒名统计如下：</strong></p>

<p><img src="http://static.wooyun.org//drops/20150916/2015091604205692387pic15.jpeg" alt="" /></p>

<p>安天分析人员通过跟踪与挖掘发现，目前这种黑客服务器非常常见，如下图所示：</p>

<p><img src="http://static.wooyun.org//drops/20150916/2015091604210095504pic16.jpeg" alt="" /></p>

<p>图14 恶意服务器</p>

<p><img src="http://static.wooyun.org//drops/20150916/2015091604210459880pic17.jpeg" alt="" /></p>

<p>图15 恶意服务器</p>

<h1>0x03 总结</h1>

<hr />

<p>目前，随着“黑色产业”的巨大经济利益诱惑，商业化的黑客工具包的使用变得越来越流行。这种能够“短平快”地产出恶意代码的方式让新手的入门门槛越来越低，一个没有经验的新手通过短时间的工具学习，就能轻松掌握入侵计算机窃密的方法。不仅仅是黑客工具，就算是一个普通的，用于构建正常服务的工具也能被轻易地被黑客利用，比如，轻量级Http服务器（Http File Server）正以其架设方便、便于操作等特点受到越来越多用户的青睐。与此同时，黑客也能利用在云端搭建轻型服务器与使用动态域名相结合的手段使得恶意代码能够更广泛、隐蔽地传播。这种轻量、便捷的服务器工具将会被越来越多的黑客或者新手使用，这无疑会加速恶意代码的传播。</p>

<p>这种工具式的黑客技术，让恶意代码的生产周期变的更短。依托商业工具进行攻击降低了攻击成本，同时提高了检测难度和传播速度。这种难度小、门槛低、成本少的攻击手法将使互联网的黑色产业链变得更加鱼龙混杂，同时也给互联网安全带来更多的挑战。</p>

<p><a href="http://mp.weixin.qq.com/s?__biz=MjM5MTA3Nzk4MQ==&amp;mid=211131560&amp;idx=1&amp;sn=3e2d0b02b10348ce2d8e5b7ac9445969&amp;scene=0#rd">博客地址</a></p>      </p>
    
			</body>
		</html>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          